package com.ruleengine.context;

public interface IContextProperty<T> extends Cloneable{
    /**
     * 属性名称
     * @return 属性名称
     */
    String getKey();
    /**
     * 获取属性值
     * @return
     */
    T getValue();
    /**
     * 设置属性值
     * @param value
     */
    void setValue(T value);
    
    /**
     * 获取属性的作用范围
     * @return
     */
    EContextPropertyScope getScope();

    /**
     * 获取属性的类型
     * @return
     */
    EContextPropertyType getType();
    
    T clone()throws CloneNotSupportedException;
}
